#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#define USER "USER"
#define MY_ENV "myval"
#define MYPWD "PWD"

//
//“ls -a - l-d ”.....命令行输入时，其实整体是一个长字符串
// "ls" "-a" "-l" "-d" 依次存入argv数组中
// 
// ./mycmd -a/-b/-c
// ./mycmd -ad/-ac/-bc

// int main(int argc, char* argv[], char* env[])//argv是一个指针数组，存放的是每一个字串的首地址,argv就是一个命令指令参数列表,env是环境变量参数表
int main()
{
    
    //不用根据环境变量参数获取，即不需要传参
    extern char **environ;
    for(int i = 0; environ[i]; i++)
    {
        printf("%d:%s\n", i, environ[i]);
    }
    //printf("%s\n", getenv("PATH"));

    //根据环境变量参数获取环境变量
    //for(int i = 0; env[i]; i++)
    //{
//        printf("env[%d]:%s\n", i, env[i]);
//    }
    
   // if(argc != 2)
   // {
   //     printf("Usage:\n\t%s [-a/-b/c/-ab/-bc/-ac/abc]\n",argv[0]);
   //     return 1;
   // }
   // if(strcmp("-a",argv[1])==0)
   // {
   //     printf("功能a\n");
   // }
   // if(strcmp("-b",argv[1])==0)
   // {
   //     printf("功能b\n");
   // }
   // if(strcmp("-c",argv[1])==0)
   // {
   //     printf("功能c\n");
   // }
   // if(strcmp("-ab",argv[1])==0)
   // {
   //     printf("功能ab\n");
   // }
   // if(strcmp("-ac",argv[1])==0)
   // {
   //     printf("功能ac\n");
   // }
   // if(strcmp("-bc",argv[1])==0)
   // {
   //     printf("功能bc\n");
   // }
   // if(strcmp("-abc",argv[1])==0)
   // {
   //     printf("功能abc\n");
   // }
    //for(int i = 0; i < argc; i++)
    //{
    //    printf("argv[%d]->%s\n", i, argv[i]);
    //}

   //  printf("%s\n",getenv(MYPWD));

//    char* myenv = getenv(MY_ENV);
//    if(NULL == myenv)
//    {
//        printf("%s,not found\n",MY_ENV);
//        return 1;
//    }
//    printf("%s=%s\n",MY_ENV,myenv);
//
//    char* who = getenv(USER);
//    if(strcmp(who,"root")==0)
//    {
//        printf("user: %s\n",who);
//        printf("user: %s\n",who);
//        printf("user: %s\n",who);
//    }
//    else 
//    {
//        printf("权限不足！\n");
//    }
    return 0;
}
